/*
 * Pratama Nur Wijaya (c) 2013 
 * 
 * Project       : Sound Of Indonesia
 * Filename      : Scene_Info_Alat_Musik.java
 * Creation Date : Apr 23, 2013 time : 10:19:07 AM
 *
 */

package id.pratama.soundofindonesia.scene;

import id.pratama.soundofindonesia.IManageableScene;
import id.pratama.soundofindonesia.Utils;
import id.pratama.soundofindonesia.config.IApps_Data;
import id.pratama.soundofindonesia.config.IApps_Define;
import id.pratama.soundofindonesia.data.IGraphic_Data;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.sprite.Sprite;
import org.andengine.entity.text.Text;
import org.andengine.opengl.font.Font;
import org.andengine.opengl.font.FontFactory;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.ui.activity.BaseGameActivity;
import android.graphics.Color;
import android.graphics.Typeface;

public class Scene_Info_Alat_Musik extends Scene implements IManageableScene, IApps_Data, IApps_Define, IGraphic_Data
{
	private BaseGameActivity	activity;
	private int					type;

	public static final int		TYPE_ANGKLUNG	= 0;
	public static final int		TYPE_GAMELAN	= 1;

	private BitmapTextureAtlas	texMenuBg;
	private ITextureRegion		regMenuBg;
	private Sprite				sprMenuBg;

	private Font				fontTitle;
	private Font				fontContent;
	private Text				teksTitle;
	private Text				teksContent;

	private String				teksGamelan		= "Gamelan adalah musik yang tercipta dari paduan bunyi gong,"
														+
														"\nkenong dan alat musik Jawa lainnya."
														+
														"\nIrama musik yang lembut dan mencerminkan keselarasan "
														+
														"\nhidup orang Jawa akan segera " +
														"\nmenyapa dan menenangkan jiwa begitu didengar.";
	private String				teksAngklung	= "Angklung adalah alat musik multitonal (bernada ganda) "
														+
														"\nyang secara tradisional berkembang dalam masyarakat "
														+
														"\nberbahasa Sunda di Pulau Jawa bagian barat. "
														+
														"\nAlat musik ini dibuat dari bambu, dibunyikan dengan cara "
														+
														"\ndigoyangkan (bunyi disebabkan oleh benturan badan pipa bambu) "
														+
														"\nsehingga menghasilkan bunyi yang bergetar dalam "
														+
														"\nsusunan nada 2, 3, sampai 4 nada dalam setiap ukuran, " +
														"\nbaik besar maupun kecil";

	public Scene_Info_Alat_Musik(BaseGameActivity activity, int type)
	{
		this.activity = activity;
		this.type = type;
		loadResources();
		applyResources();
		registerUpdateHandler();
	}

	@Override
	public void loadResources()
	{
		if (texMenuBg == null)
			texMenuBg = new BitmapTextureAtlas(activity.getTextureManager(), MENU_UTAMA_BG_TEX_WIDTH,
					MENU_UTAMA_BG_TEX_HEIGHT, Utils.getTextureOptions());

		regMenuBg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(texMenuBg, activity, MENU_UTAMA_BG, 0, 0);

		fontTitle = FontFactory.create(activity.getFontManager(), activity.getTextureManager(), 256, 256,
				Typeface.create(Typeface.DEFAULT, Typeface.BOLD), Utils.getRatio(50), Color.WHITE);

		fontContent = FontFactory.create(activity.getFontManager(), activity.getTextureManager(), 256, 256,
				Typeface.create(Typeface.DEFAULT, Typeface.BOLD), Utils.getRatio(25), Color.WHITE);

		fontTitle.load();
		fontContent.load();
		texMenuBg.load();
	}

	@Override
	public void applyResources()
	{
		if (sprMenuBg == null)
			sprMenuBg = new Sprite(0, 0, RES_WIDTH, RES_HEIGHT, regMenuBg, activity.getVertexBufferObjectManager());

		String teksAlatMusik = (type == TYPE_ANGKLUNG) ? "Angklung" : "Gamelan";

		String tampil = (type == TYPE_ANGKLUNG) ? teksAngklung : teksGamelan;

		if (teksTitle == null)
			teksTitle = new Text(0, 0, fontTitle, teksAlatMusik, activity.getVertexBufferObjectManager());
		teksTitle.setPosition(RES_WIDTH / 2 - teksTitle.getWidth() / 2, Utils.getRatio(10));

		if (teksContent == null)
			teksContent = new Text(0, 0, fontContent, tampil, activity.getVertexBufferObjectManager());
		teksContent.setPosition(RES_WIDTH / 2 - teksContent.getWidth() / 2, Utils.getRatio(150));

		attachChild(sprMenuBg);
		sprMenuBg.attachChild(teksTitle);
		sprMenuBg.attachChild(teksContent);
	}

	@Override
	public void registerUpdateHandler()
	{
	}

	@Override
	public void unloadResources()
	{
	}

}
